#pragma once
#include "DXAMLCommon.h"

class IPALSocket
{
public:
	virtual XUINT32 Release() = 0;
	virtual HRESULT Connect(XSOCKADDR *, unsigned int, void (__stdcall *)(void *, void *, int), void *, void *) = 0;
	virtual HRESULT Send(char **, unsigned int *, unsigned int, void (__stdcall *)(void *, void *, unsigned int, int), void *, void *) = 0;
	virtual HRESULT SendTo(char **, unsigned int *, unsigned int, XSOCKADDR *, int, void (__stdcall *)(void *, void *, unsigned int, int), void *, void *) = 0;
	virtual HRESULT Receive(char *, unsigned int, void (__stdcall *)(void *, void *, unsigned int, int), void *, void *) = 0;
	virtual HRESULT ReceiveFrom(char *, unsigned int, XSOCKADDR *, int *, void (__stdcall *)(void *, void *, unsigned int, int), void *, void *) = 0;
	virtual void Preclose() = 0;
	virtual void Postclose() = 0;
};